#include<stdio.h>

void sortqueen(int(*arr)[8],int num);
int judge(int(*arr)[8],int row,int col);

int main()
{
	int arr[8][8]={0},i=0,j=0;
	sortqueen(arr,8);
	return 0;
}

void sortqueen(int(*arr)[8],int num)
{
	int row=8-num,j=0,i=0,k=0;
	for(j=0;j<8;j++)
	{
		if(judge(arr,row,j))
		{
			arr[row][j]=1;
			if(num>1)
			{
				sortqueen(arr,num-1);
			}
			else
			{
				for(i=0;i<8;i++)
				{
					for(k=0;k<8;k++)
						printf("%d ",arr[i][k]);
					printf("\n");
				}
				printf("\n");
			}
			arr[row][j]=0;
		}
	}
}

int judge(int(*arr)[8],int row,int col)
{
	int i=0,j=0;
	for(i=0;i<row;i++)
		if(arr[i][col]==1)
			return 0;
	if(row>=col)
	{
		for(j=0,i=row-col;i<row;i++,j++)
			if(arr[i][j]==1)
				return 0;
	}
	else
	{
		for(j=col-row,i=0;i<row;i++,j++)
			if(arr[i][j]==1)
				return 0;
	}
	if(row+col<=7)
	{
		for(i=0,j=row+col;i<row;i++,j--)
			if(arr[i][j]==1)
				return 0;
	}
	else
	{
		for(j=7,i=row+col-7;i<row;i++,j--)
			if(arr[i][j]==1)
				return 0;
	}
	return 1;
}
